Notebook criado para determinar:
Sendo que a estrela foi evoluida utilizando o teste make_o_ne_wd do test_suite do MESA-r8845 com as seguintes modificações:
Os resultados do teste se encontram na pasta /media/glauffer/Data/mesa/alpha2_r8845
In [1]:
import mesa as ms
# Pasta com os resultados do MESA
folder = '/media/glauffer/Data/mesa/alpha2_r8845/LOGS'
# Ler os dados do history
s = ms.history_data(folder)
# Extraindo massa, idade e modelo
mass = s.get('star_mass')
age = s.get('star_age')
model = s.get('model_number')
In [10]:
# Foi calculado com um script separado para não travar o notebook.
# O script está em /home/glauffer/Documents/mesa/codes/element_minimun.py
# Load dos dados de modelos e media do H:
import numpy as np
models = np.loadtxt('/media/glauffer/Data/mesa/alpha2_r8845/models.txt')
mean_elem = np.loadtxt('/media/glauffer/Data/mesa/alpha2_r8845/mean_elem.txt')
# Modelo com minimo de H
model[np.argmin(mean_elem)]
#plot mean_elem vs models
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(models, mean_elem)
plt.plot(model[np.argmin(mean_elem)], 0, 'ro')
Out[10]:
In [17]:
# Zoom no plot entre a região 2000 e model[np.argmin(mean_elem)]
minimo = model[np.argmin(mean_elem)]
plt.plot(models, mean_elem)
plt.xlim(2000, minimo)
print mean_elem[2000:2225]
In [20]:
# Zoom no plot entre a região 2150 e model[np.argmin(mean_elem)] = 2225
plt.plot(models, mean_elem)
plt.xlim(2150, minimo-50)
Out[20]:
In [28]:
print mean_elem[2173], mean_elem[2174]
# a posição no vetor que armazena a informação é sempre um número anterior, pois o vetor começa em zero
# então a posição mean_elem[2174] é referente ao modelo 2175
# Porém, ao procurar pelo número do modelo ao utilizar o NuGridPy, tenho que usar o numero exato do modelo, e não um número anterior
In [45]:
# plot do HRD
t = s.get('log_Teff')
L = s.get('log_L')
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[2174], L[2174], 'ro')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$', fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
plt.savefig('hrd_alpha2_dot.png')
In [5]:
# Graficos de abundancia para antes e depois de perder o H (model 2174 e 2175)
# %run ~/Documents/mesa/codes/plot_abundance_at_model.py /media/glauffer/Data/mesa/alpha2_r8845/LOGS antes_de_perder_H abun_2174 2174 .
#import matplotlib.pyplot as plt
#%matplotlib inline
%run ~/Dropbox/UFRGS/kepler/mesa/mesa/codes/plot_abundance_at_model.py ~/Dropbox/UFRGS/kepler/mesa/alpha2 antes_de_perder_H abun_2174 2174 .
In [16]:
from IPython.display import Image
Image(filename='abun_2174.png')
Out[16]:
In [6]:
#%run ~/Documents/mesa/codes/plot_abundance_at_model.py /media/glauffer/Data/mesa/alpha2_r8845/LOGS Sem_H abun_2175 2175 .
%run ~/Dropbox/UFRGS/kepler/mesa/mesa/codes/plot_abundance_at_model.py ~/Dropbox/UFRGS/kepler/mesa/alpha2 Sem_H abun_2175 2175 .
In [17]:
Image(filename='abun_2175.png')
Out[17]:
In [1]:
# Procurando pelo parametro he_core
import mesa as ms
import numpy as np
folder2 = '/home/glauffer/Dropbox/UFRGS/kepler/mesa/alpha2/'
s = ms.history_data(folder2)
In [2]:
s.cols
Out[2]:
In [3]:
he = s.get('he_core_mass')
model = s.get('model_number')
In [72]:
%matplotlib inline
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(15., 10.))
plt.plot(model, he, 'go')
plt.plot(model, he, 'g-')
plt.title(r'$He$ core mass vs Model', fontsize=18)
plt.xlabel(r'Model', fontsize=16)
plt.ylabel(r'$He$ core mass', fontsize=16)
#plt.xlim(59,80)
#plt.plot(model[76], he[76], 'ro')
plt.xlim(50,100)
#plt.savefig('he_core_mass.png')
plt.savefig('he_core_mass_zoom.png')
print he[75], he[76]
In [8]:
t = s.get('log_Teff')
L = s.get('log_L')
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[76], L[76], 'go')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$', fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
plt.savefig('hrd_alpha2_he.png')
In [70]:
%matplotlib inline
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[60], L[60], 'ko')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$, posicao 60', fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
plt.xlim(4.2,4.5)
plt.ylim(3.5,3.8)
#plt.savefig('hrd_alpha2_he_model60.png')
plt.savefig('hrd_alpha2_he_model60_zoom.png')
#plt.show()
In [27]:
che4 = s.get('center_he4')
ch1 = s.get('center_h1')
In [41]:
plt.plot(model, che4, 'bo')
#plt.xlim(70,80)
#plt.plot(model, ch1, 'bo')
#plt.xlim(50,80)
Out[41]:
In [53]:
a = ms.mesa_profile(folder2,60)
In [43]:
a.cols
Out[43]:
In [54]:
he3 = a.get('he3')
he4 = a.get('he4')
q = -np.log(1-a.get('q'))
In [71]:
#plt.plot(q, he3, 'b-')
plt.plot(q, he4, 'r-')
Out[71]:
In [1]:
# Lendo os dados do MESA
import mesa as ms
folder2 = '/home/glauffer/Dropbox/UFRGS/kepler/mesa/alpha2/'
s = ms.history_data(folder2)
models = s.get('model_number')
#s.cols()
In [5]:
s.cols
Out[5]:
In [1]:
# Identificando os pulsos termicos utilizand a luminosidade de He versus o numero do modelo (log(he) X model)
import matplotlib.pyplot as plt
%matplotlib inline
fig = plt.figure(figsize=(15., 10.))
plt.plot(models, s.get('log_LHe'))
plt.title(r'$\log(He)$ vs model $n$')
In [16]:
# os picos comecam apos o modelo 2250. Vou dar um zoom do grafico para identificar com mais precisao
fig = plt.figure(figsize=(15., 10.))
plt.plot(models, s.get('log_LHe'))
#plt.plot(s.get('star_age'), s.get('log_LHe'))
plt.title(r'$\log(He)$ vs model $n$')
plt.plot(models[2349], s.get('log_LHe')[2349], 'ro')
plt.plot(models[2524], s.get('log_LHe')[2524], 'ro')
#plt.plot(s.get('star_age')[2349], s.get('log_LHe')[2349], 'ro')
#plt.plot(s.get('star_age')[2524], s.get('log_LHe')[2524], 'ro')
#plt.xlim(2250,2600)
#plt.xlim(2.5e7,3e7)
Out[16]:
In [5]:
# Vou plotar o HRD com um ponto no modelo 2350 e 2550
t = s.get('log_Teff')
L = s.get('log_L')
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[2349], L[2349], 'ro')
plt.plot(t[2524], L[2524], 'ro')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$', fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
Out[5]:
In [20]:
# errado.. os pulsos sao bem antes...
# vou pegar a primeira variacao na luminosidade do he
fig = plt.figure(figsize=(15., 10.))
plt.plot(models, s.get('log_LHe'))
plt.title(r'$\log(He)$ vs model $n$')
plt.plot(models[49], s.get('log_LHe')[49], 'ro')
plt.plot(models[179], s.get('log_LHe')[179], 'ro')
plt.xlim(0,200)
Out[20]:
In [21]:
#novamente, plotar o HRD com pontos nos modelos 50 e 150
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[49], L[49], 'go')
plt.plot(t[179], L[179], 'ro')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$', fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
Out[21]:
In [27]:
# tambem nao... deve ser a pequena variacao apos o modelo 180
# identificando essa pequena variacao
fig = plt.figure(figsize=(15., 10.))
plt.plot(models, s.get('log_LHe'))
plt.title(r'$\log(He)$ vs model $n$')
plt.plot(models[449], s.get('log_LHe')[449], 'ro')
plt.plot(models[179], s.get('log_LHe')[179], 'go')
plt.plot(models[349], s.get('log_LHe')[349], 'ko')
plt.xlim(0,800)
Out[27]:
In [28]:
# fazendo o HRD com pontos nos modelos 350 e 450
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[349], L[349], 'go')
plt.plot(t[449], L[449], 'ro')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$', fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
Out[28]:
In [63]:
#tambem nao... vou chutar valores no HRD
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[2089], L[2089], 'go')
plt.plot(t[499], L[499], 'ro')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$ , $M_f = $' + str(mass[-1]), fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
Out[63]:
In [103]:
# analisando os modelos 500 e 2090 na luminosidade do helio
fig = plt.figure(figsize=(15., 10.))
plt.plot(models, s.get('log_LHe'))
plt.title(r'$\log L_{He}$ vs model $n$', fontsize=18)
plt.xlabel('model', fontsize=16)
plt.ylabel(r'$\log L_{He}$', fontsize=16)
plt.plot(models[499], s.get('log_LHe')[499], 'ro')
plt.plot(models[2089], s.get('log_LHe')[2089], 'go')
#plt.plot(models[349], s.get('log_LHe')[349], 'ko')
#plt.xlim(0,800)
plt.savefig('log_L_he.png')
In [47]:
# identifiquei como 'pulsos termicos' a regiao entre os modelos 500 e 2090.
# vou analisar a variacao de massa nesse intervalo
fig = plt.figure(figsize=(15., 10.))
mass = s.get('star_mass')
plt.plot(models, mass)
plt.plot(models[499], mass[499], 'ro')
plt.plot(models[2089], mass[2089], 'go')
print 'M modelo 500: ', mass[499]
print 'M modelo 2089: ', mass[2089]
print 'variacao de massa entre modelos 500 e 2090: ', abs(mass[2089] - mass[499])
In [54]:
# ha um outro pico de perda de massa no grafico acima, apos o modelo 2200.
# identificando o modelo do pico
fig = plt.figure(figsize=(15., 10.))
plt.plot(models, mass)
plt.plot(models[2199], mass[2199], 'ro')
plt.plot(models[2329], mass[2329], 'go')
plt.xlim(2000, 2500)
print 'M modelo 2200: ', mass[2199]
print 'M modelo 2330: ', mass[2329]
print 'variacao de massa entre modelos 2200 e 2330: ', abs(mass[2199] - mass[2329])
print 'Massa final: ', mass[-1]
In [101]:
#identificando os pontos de perda de massa do HRD e fazendo os plots com essa informacao
fig = plt.figure(figsize=(15., 10.))
plt.plot(t, L)
plt.plot(t[2089], L[2089], 'go')
plt.plot(t[499], L[499], 'ro')
plt.gca().invert_xaxis()
plt.title(r'HRD $\alpha_{MLT}=2$ , $M_f = $' + str(mass[-1]), fontsize=18)
plt.xlabel(r'$\log T_{Eff}$', fontsize=16)
plt.ylabel(r'$\log L$', fontsize=16)
plt.text(4.5, 3.0, 'model 500 (ponto vermelho): '+ str(mass[499]) + r'$M_\odot$')
plt.text(4.5, 2.9, 'model 2090 (ponto verde): '+ str(mass[2089]) + r'$M_\odot$')
plt.text(4.5, 2.8, 'model 2090 - model 500: '+ str(abs(mass[2089] - mass[499])) + r'$M_\odot$')
plt.plot(t[2199], L[2199], 'ko')
plt.plot(t[2329], L[2329], 'yo')
plt.text(4.5, 2.5, 'model 2200 (ponto preto): '+ str(mass[2199]) + r'$M_\odot$')
plt.text(4.5, 2.4, 'model 2330 (ponto amarelo): '+ str(mass[2329]) + r'$M_\odot$')
plt.text(4.5, 2.3, 'model 2330 - model 2200: '+ str(abs(mass[2199] - mass[2329])) + r'$M_\odot$')
plt.plot(t[2174], L[2174], 'kx')
plt.annotate('Perde H (modelo 2175)', xy=(t[2174], L[2174]), xytext=(t[2174], L[2174]+0.2),
arrowprops=dict(facecolor='black', width = 1.5, headwidth = 10.0, shrink=0.15),)
#)
plt.savefig('hrd_anotacoes_perda_massa.png')
In [113]:
# plotanto massa X model para imprimir
fig = plt.figure(figsize=(15., 10.))
#plt.plot(models, mass, 'b.')
plt.plot(models, mass)
plt.plot(models[499], mass[499], 'ro')
plt.plot(models[2089], mass[2089], 'go')
plt.plot(models[2199], mass[2199], 'ko')
plt.plot(models[2329], mass[2329], 'yo')
#plt.xlim(2000, 2500)
plt.title('Mass X model', fontsize=18)
plt.xlabel('model', fontsize=16)
plt.ylabel('Mass', fontsize=16)
plt.savefig('perda_de_massa.png')
In [ ]: